
// 如果需要再组件中使用计算属性功能，需要导入 ComponentWithComputed 方法
import { ComponentWithComputed } from "miniprogram-computed"

// 需要使用导入的 ComponentWithComputed 替换 Component 方法
ComponentWithComputed({

    // 计算属性，基于已有的数据产生新的数据
    // 在使用 ComponentWithComputed 方法构建组件以后
    // 这时候，就可以新增两个配置项 computed 以及 watch 配置项
    
    computed: {
        total(data) {
            // 方法内部必须有返回值
            // 计算属性内部，不能使用 this 来获取 data 中的数据
            // 如果想获取 data 中的数据，需要使用形参

            // 计算属性具有缓存特性
            // 计算属性只执行一次，后续在使用的时候，返回的是第一次执行的结果
            // 只药依赖的数据，没有发生改变，返回的始终是第一次执行的结果

            console.log(data)

            return data.a + data.b
        }
    },

    // watch 数据监听器，用来监听数据是否发生变化，在数据变化以后执行响应的逻辑
    watch: {
        // key 需要监听的数据
        // value 是回调函数，回调函数有一个形参，形参是最新的，改变以后的数据
        // a: function(a) {
        //     console.log(a)
        // },

        // b: function(b) {
        //     console.log(b)
        // }

        // 同时监听多个数据，数据与数据之间需要使用，（，）逗号进行分割
        'a, b': function(a, b) {
            // 在watch内部监听到数据变化以后，就可以来执行相应的逻辑
            this.setData({
                c: a + b
            })
        }
    },

    /**
     * 组件的初始数据
     */
    data: {
        a: 1,
        b: 2
    },

    /**
     * 组件的方法列表
     */
    methods: {

    }
})